package com.goa.parse;

import java.util.Random;

public class IDGenerate {
  
    private static final String BASE_CLIENT_ID = "MyAppClient_";  
    private static final int RANDOM_SUFFIX_LENGTH = 8; // 可以根据需要调整长度  
  
    /**  
     * 生成一个基于时间戳和随机数的MQTT ClientID  
     *  
     * @return 生成的ClientID  
     */  
    public static String getID() {
        // 使用当前时间戳作为基础，以减少ID重复的可能性  
        long timestamp = System.currentTimeMillis();  
          
        // 创建一个随机数生成器  
        Random random = new Random();  
          
        // 生成一个指定长度的随机字符串作为后缀  
        StringBuilder randomSuffix = new StringBuilder(RANDOM_SUFFIX_LENGTH);  
        for (int i = 0; i < RANDOM_SUFFIX_LENGTH; i++) {  
            int randomChar = random.nextInt(26) + 'a'; // 假设我们只想用小写字母  
            randomSuffix.append((char) randomChar);  
        }  
          
        // 将基础ClientID、时间戳和随机后缀组合起来  
        return BASE_CLIENT_ID + timestamp + "_" + randomSuffix.toString();  
    }  
  
    public static void main(String[] args) {  
        // 测试ClientID生成  
        System.out.println(getID());
    }  
}